package com.qt.thread;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * @Author zsf
 * @Date 2023/10/2 19:10
 * @Version 1.0
 */
public class MyThreadDemo03 {

    public static void main(String[] args) throws ExecutionException, InterruptedException {

        /*
              + 定义一个类MyCallable实现Callable接口
        在MyCallable类中重写call()方法
        创建MyCallable类的对象
        创建Future的实现类FutureTask对象，把MyCallable对象作为构造方法的参数
        创建Thread类的对象，把FutureTask对象作为构造方法的参数
        启动线程
        再调用get方法，就可以获取线程结束之后的结果。
         */

        MyCallable mc = new MyCallable();
        FutureTask<Integer> ft = new FutureTask<Integer>(mc);
        Thread t = new Thread(ft);
        t.start();
        Integer integer = ft.get();
        System.out.println(integer);


    }

}
